home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 March / PCWMAR09.iso / Software / Freeware / Adobe Media Player 1.6 / adobe_media_player.air / AMP.swf / scripts / mx / effects / CompositeEffect.as < prev    next >
Encoding:
Text File  |  2008-11-25  |  7.9 KB  |  258 lines

  1. package mx.effects
  2. {
  3.    import mx.core.mx_internal;
  4.    import mx.effects.effectClasses.CompositeEffectInstance;
  5.    import mx.effects.effectClasses.PropertyChanges;
  6.    
  7.    use namespace mx_internal;
  8.    
  9.    public class CompositeEffect extends Effect
  10.    {
  11.       mx_internal static const VERSION:String = "3.2.0.3958";
  12.       
  13.       private var _affectedProperties:Array;
  14.       
  15.       private var childTargets:Array;
  16.       
  17.       public var children:Array;
  18.       
  19.       public function CompositeEffect(param1:Object = null)
  20.       {
  21.          children = [];
  22.          super(param1);
  23.          instanceClass = CompositeEffectInstance;
  24.       }
  25.       
  26.       override public function createInstances(param1:Array = null) : Array
  27.       {
  28.          if(!param1)
  29.          {
  30.             param1 = this.targets;
  31.          }
  32.          childTargets = param1;
  33.          var _loc2_:IEffectInstance = createInstance();
  34.          childTargets = null;
  35.          return !!_loc2_ ? [_loc2_] : [];
  36.       }
  37.       
  38.       override protected function initInstance(param1:IEffectInstance) : void
  39.       {
  40.          var _loc4_:int = 0;
  41.          var _loc5_:int = 0;
  42.          var _loc6_:Effect = null;
  43.          super.initInstance(param1);
  44.          var _loc2_:CompositeEffectInstance = CompositeEffectInstance(param1);
  45.          var _loc3_:Object = childTargets;
  46.          if(!(_loc3_ is Array))
  47.          {
  48.             _loc3_ = [_loc3_];
  49.          }
  50.          if(children)
  51.          {
  52.             _loc4_ = int(children.length);
  53.             _loc5_ = 0;
  54.             while(_loc5_ < _loc4_)
  55.             {
  56.                _loc6_ = children[_loc5_];
  57.                if(mx_internal::propertyChangesArray != null)
  58.                {
  59.                   _loc6_.mx_internal::propertyChangesArray = mx_internal::propertyChangesArray;
  60.                }
  61.                if(_loc6_.mx_internal::filterObject == null && Boolean(mx_internal::filterObject))
  62.                {
  63.                   _loc6_.mx_internal::filterObject = mx_internal::filterObject;
  64.                }
  65.                if(effectTargetHost)
  66.                {
  67.                   _loc6_.effectTargetHost = effectTargetHost;
  68.                }
  69.                if(_loc6_.targets.length == 0)
  70.                {
  71.                   _loc2_.addChildSet(children[_loc5_].createInstances(_loc3_));
  72.                }
  73.                else
  74.                {
  75.                   _loc2_.addChildSet(children[_loc5_].createInstances(_loc6_.targets));
  76.                }
  77.                _loc5_++;
  78.             }
  79.          }
  80.       }
  81.       
  82.       override mx_internal function captureValues(param1:Array, param2:Boolean) : Array
  83.       {
  84.          var _loc5_:Effect = null;
  85.          var _loc3_:int = int(children.length);
  86.          var _loc4_:int = 0;
  87.          while(_loc4_ < _loc3_)
  88.          {
  89.             _loc5_ = children[_loc4_];
  90.             param1 = _loc5_.mx_internal::captureValues(param1,param2);
  91.             _loc4_++;
  92.          }
  93.          return param1;
  94.       }
  95.       
  96.       public function addChild(param1:IEffect) : void
  97.       {
  98.          children.push(param1);
  99.          _affectedProperties = null;
  100.       }
  101.       
  102.       override mx_internal function applyStartValues(param1:Array, param2:Array) : void
  103.       {
  104.          var _loc5_:Effect = null;
  105.          var _loc6_:Array = null;
  106.          var _loc3_:int = int(children.length);
  107.          var _loc4_:int = 0;
  108.          while(_loc4_ < _loc3_)
  109.          {
  110.             _loc5_ = children[_loc4_];
  111.             _loc6_ = _loc5_.targets.length > 0 ? _loc5_.targets : param2;
  112.             if(_loc5_.mx_internal::filterObject == null && Boolean(mx_internal::filterObject))
  113.             {
  114.                _loc5_.mx_internal::filterObject = mx_internal::filterObject;
  115.             }
  116.             _loc5_.mx_internal::applyStartValues(param1,_loc6_);
  117.             _loc4_++;
  118.          }
  119.       }
  120.       
  121.       override public function createInstance(param1:Object = null) : IEffectInstance
  122.       {
  123.          if(!childTargets)
  124.          {
  125.             childTargets = [param1];
  126.          }
  127.          var _loc2_:IEffectInstance = super.createInstance(param1);
  128.          childTargets = null;
  129.          return _loc2_;
  130.       }
  131.       
  132.       override protected function filterInstance(param1:Array, param2:Object) : Boolean
  133.       {
  134.          var _loc3_:Array = null;
  135.          var _loc4_:int = 0;
  136.          var _loc5_:int = 0;
  137.          if(mx_internal::filterObject)
  138.          {
  139.             _loc3_ = targets;
  140.             if(_loc3_.length == 0)
  141.             {
  142.                _loc3_ = childTargets;
  143.             }
  144.             _loc4_ = int(_loc3_.length);
  145.             _loc5_ = 0;
  146.             while(_loc5_ < _loc4_)
  147.             {
  148.                if(mx_internal::filterObject.filterInstance(param1,effectTargetHost,_loc3_[_loc5_]))
  149.                {
  150.                   return true;
  151.                }
  152.                _loc5_++;
  153.             }
  154.             return false;
  155.          }
  156.          return true;
  157.       }
  158.       
  159.       override public function captureStartValues() : void
  160.       {
  161.          var _loc1_:Array = getChildrenTargets();
  162.          mx_internal::propertyChangesArray = [];
  163.          var _loc2_:int = int(_loc1_.length);
  164.          var _loc3_:int = 0;
  165.          while(_loc3_ < _loc2_)
  166.          {
  167.             mx_internal::propertyChangesArray.push(new PropertyChanges(_loc1_[_loc3_]));
  168.             _loc3_++;
  169.          }
  170.          mx_internal::propertyChangesArray = mx_internal::captureValues(mx_internal::propertyChangesArray,true);
  171.          endValuesCaptured = false;
  172.       }
  173.       
  174.       private function getChildrenTargets() : Array
  175.       {
  176.          var _loc3_:Array = null;
  177.          var _loc4_:Effect = null;
  178.          var _loc5_:int = 0;
  179.          var _loc6_:int = 0;
  180.          var _loc7_:int = 0;
  181.          var _loc8_:int = 0;
  182.          var _loc9_:String = null;
  183.          var _loc1_:Array = [];
  184.          var _loc2_:Object = {};
  185.          _loc5_ = int(children.length);
  186.          _loc6_ = 0;
  187.          while(_loc6_ < _loc5_)
  188.          {
  189.             _loc4_ = children[_loc6_];
  190.             if(_loc4_ is CompositeEffect)
  191.             {
  192.                _loc3_ = CompositeEffect(_loc4_).getChildrenTargets();
  193.                _loc7_ = int(_loc3_.length);
  194.                _loc8_ = 0;
  195.                while(_loc8_ < _loc7_)
  196.                {
  197.                   if(_loc3_[_loc8_] != null)
  198.                   {
  199.                      _loc2_[_loc3_[_loc8_].toString()] = _loc3_[_loc8_];
  200.                   }
  201.                   _loc8_++;
  202.                }
  203.             }
  204.             else if(_loc4_.targets != null)
  205.             {
  206.                _loc7_ = int(_loc4_.targets.length);
  207.                _loc8_ = 0;
  208.                while(_loc8_ < _loc7_)
  209.                {
  210.                   if(_loc4_.targets[_loc8_] != null)
  211.                   {
  212.                      _loc2_[_loc4_.targets[_loc8_].toString()] = _loc4_.targets[_loc8_];
  213.                   }
  214.                   _loc8_++;
  215.                }
  216.             }
  217.             _loc6_++;
  218.          }
  219.          _loc5_ = int(targets.length);
  220.          _loc6_ = 0;
  221.          while(_loc6_ < _loc5_)
  222.          {
  223.             if(targets[_loc6_] != null)
  224.             {
  225.                _loc2_[targets[_loc6_].toString()] = targets[_loc6_];
  226.             }
  227.             _loc6_++;
  228.          }
  229.          for(_loc9_ in _loc2_)
  230.          {
  231.             _loc1_.push(_loc2_[_loc9_]);
  232.          }
  233.          return _loc1_;
  234.       }
  235.       
  236.       override public function getAffectedProperties() : Array
  237.       {
  238.          var _loc1_:Array = null;
  239.          var _loc2_:int = 0;
  240.          var _loc3_:int = 0;
  241.          if(!_affectedProperties)
  242.          {
  243.             _loc1_ = [];
  244.             _loc2_ = int(children.length);
  245.             _loc3_ = 0;
  246.             while(_loc3_ < _loc2_)
  247.             {
  248.                _loc1_ = _loc1_.concat(children[_loc3_].getAffectedProperties());
  249.                _loc3_++;
  250.             }
  251.             _affectedProperties = _loc1_;
  252.          }
  253.          return _affectedProperties;
  254.       }
  255.    }
  256. }
  257.  
  258.